Skip to main content
Version: 12.10.0

Debugging, Analysis and tracing of Bugs

The following diagram illustrates the architecture of the Jaeger distributed tracing system. It shows the flow of trace data from user applications to the Jaeger backend components and ultimately to the storage and visualization layers.

Components Overview

User Application: This is where the application code resides, and it's the starting point for trace data generation.

OpenTelemetry SDK (recommended): The modern and recommended way to instrument applications for tracing. It can send data directly to the Jaeger Collector using HTTP or gRPC, or it can send data to the Jaeger Agent using UDP.

Jaeger Agent: A network daemon that listens for trace data sent over UDP. It can then forward this data to the Jaeger Collector using gRPC.

Jaeger Collector: The component that receives trace data from either the Jaeger Agent or directly from the OpenTelemetry SDK. It's responsible for processing and storing the data in a storage backend.

Storage Plugin: An optional component that allows the Jaeger Collector to use different storage backends via gRPC.

Storage: The persistent storage where trace data is kept. This can be any database or storage system supported by Jaeger, such as Elasticsearch or Cassandra.

Jaeger Query Service: This service retrieves trace data from storage for querying purposes.

Jaeger UI: The web-based user interface that communicates with the Jaeger Query Service over HTTP to visualize and query trace data.

Data Flow

Trace data is generated by either the deprecated Jaeger Client or the recommended OpenTelemetry SDK within the user application. The Jaeger Agent receives trace data from the instrumented application and forwards it to the Jaeger Collector. The Jaeger Collector processes the trace data and stores it in the configured storage backend, either directly or through a storage plugin. The Jaeger Query Service accesses the stored trace data for querying and analysis. The Jaeger UI makes HTTP requests to the Jaeger Query Service to fetch and display trace data for users. Application Host The Application Host represents the physical or virtual environment where the user application and the Jaeger Agent are running. It encapsulates the components that are typically deployed together on the same host.